package br.com.webprojeto.colecoes;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import br.com.webprojeto.basicas.*;

import br.com.webprojeto.interfaces.*;


public class ColecaoFisica implements InterfaceColecaoFisica  {

	
	
	public void adicionarFisica(Fisica f) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		sessao.saveOrUpdate(f);
		sessao.getTransaction().commit(); 
	}
	 
	
	
	public void removerFisica(long codFisica) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		Fisica fis = (Fisica) sessao.load(Fisica.class, codFisica);
		sessao.delete(fis);
		sessao.getTransaction().commit();
	}
	 
	
	
	public void atualizarFisica(Fisica fis) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		sessao.update(fis);
		sessao.getTransaction().commit();
	}
	 
	
	public List listarFisica() {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		Query consulta = sessao.createQuery("from Fisica");
		return consulta.list();
	}
	
	public Fisica procurarFisica(long codFisica) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		Fisica fis = (Fisica) sessao.load(Fisica.class, codFisica);
		sessao.getTransaction().commit();
		
		return fis;
	}

	public Fisica localizarFisicaCpf(String cpf) {
	
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		Query consulta = sessao.createQuery("from Fisica where cpf like ?");
		consulta.setParameter(0, cpf);
		Fisica fis = (Fisica) consulta.uniqueResult();
		sessao.getTransaction().commit();
		
		return fis;
	}


	
	

}
